package com.shangxia.spr.po.vo;

import com.shangxia.spr.enums.attribute.PanelAttributeEnum;
import com.shangxia.spr.frame.AttributeEnumI;
import com.shangxia.spr.frame.AttributeI;
import lombok.Data;

import java.math.BigDecimal;

/**
 * @author zhouya38158
 * @date 2021/11/18 14:12
 * @apiNote 面板属性
 * @see PanelAttributeEnum
 */
@Data
public class PanelAttributeVO implements AttributeI {

    private BaseAttributeVO baseAttributeVO;
    /**
     * 攻击力
     */
    private BigDecimal attack;
    /**
     * 防御力
     */
    private BigDecimal defense;
    /**
     * 血量
     */
    private BigDecimal blood;
    /**
     * 速度
     */
    private BigDecimal speed;
    /**
     * 命中
     */
    private BigDecimal hit;
    /**
     * 闪避
     */
    private BigDecimal dodge;
    /**
     * 招架
     */
    private BigDecimal parry;
    /**
     * 韧性
     */
    private BigDecimal toughness;
    /**
     * 聚气
     */
    private BigDecimal gatherGas;
    /**
     * 内力
     */
    private BigDecimal internalForce;
    /**
     * 暴击伤害
     */
    private BigDecimal criticalDamage;

    /**
     * 暴击概率
     */
    private BigDecimal criticalPct;

    @Override
    public AttributeEnumI[] getAttributeEnumI() {
        return PanelAttributeEnum.values();
    }

    @Override
    public AttributeI getAttributeImpl() {
        return baseAttributeVO == null ? new BaseAttributeVO() : baseAttributeVO;
    }
}
